import {VNode} from "vue"

export namespace ITable {



    export interface ColumnItem {
        enabled?:boolean // 是否启用此列
        name?:string // 列名程 -- 优先级比 prop 高 当 name 存在时，slot 命名以 name 为准
        hide?:boolean // 是否隐藏
        //
        width?:string // 宽度
        minWidth?:string // 最小宽度
        class?: string // 列的类名
        // 基础属性
        prop?:string // 列属性名
        label?:string
        desc?:string
        // 搜索相关
        search?:boolean | VNode // 是否加入搜索，如果要自定义，可以使用 Vnode
        searchWidth?:string
        searchClass?:string
        // 表头相关
        header?:VNode // 自定义表头
        sort?:boolean | (() => void) // 支持排序和自定义排序函数
        filter?:boolean | (() => void) // 支持筛选和自定义筛选
        filterList?:({label:string,value:string}[]) // 当采用远程搜索时 filterList 是搜索项 //
        //
        children?:ColumnItem[] // 多级表头
    }
}

